// 1.引入axios
import axios from "axios";
import {
    ElLoading
} from 'element-plus';
// var baseURL = 'http://192.168.110.147:8088'
var baseURL = '/api/web/'
// 2.创建axios对象
const instance = axios.create({
    baseURL: baseURL
})
let onLoading = null
// 3.请求拦截器
instance.interceptors.request.use(function (config) {
    // 在发送请求之前,开启loading
    if (onLoading == null) {
        onLoading = ElLoading.service({
            Lock: true,
            background: 'rgba(255,255,255,0.7)',
            text: '正在加载中...'
        })
    }
    return config
}, function (error) {
    // 对请求错误再做些什么
    return Promise.reject(error)
})

// 4.响应拦截器
instance.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数
    // 对响应数据做点什么
    // 关闭loading
    if (onLoading) {
        onLoading.close()
        onLoading = null
    }
    return response
}, function (error) {
    // 超出2xx范围的状态码都会触发该函数
    // 对响应错误做点什么
    return Promise.reject(error)
})

// 5.向外导出axios对象 是一个promis
export default function request(options) {
    return new Promise((resolve, reject) => {
        instance(options).then(res => {
            resolve(res.data)
        }).catch(err => {
            reject(err)
        })
    })
}